нюансы:
не округляя
не умножая на 10 кратные.
пример:
есть число 0,0007 - нужно что было 7
есть 0,77777 - нужно 77777
есть ли какая функция ?
1) Перевести в стринг, вычесть символы "0", ".", "," и оставшееся перевести в интегер.
2) Перевести в стринг, посчитать символы после запятой, умножить исходный дабл на 10^Х, где Х - кол-во символов после запятой.
1) Перевести в стринг, вычесть символы "0", ".", "," и оставшееся перевести в интегер.
2) Перевести в стринг, посчитать символы после запятой, умножить исходный дабл на 10^Х, где Х - кол-во символов после запятой.
и как их вычесть ? писать километровый цикл ?
Ага ;)
Ну а как же без цикла, строку ведь посимвольно обрабатывать надо. Есть правда один нюанс - надо отслеживать только нули, идущие подряд от запятой, а те нули, что между цифрами оставлять. А то 0,0070422 превратится в 7422, когда должно быть 70422.
Второй вариант удобнее, Б=А*10^(Х-2), где А - исходное число, Х - длина строки.
А как быть с даблами больше 1? Или такой вариант не будет втречаться?
А намудрили, то ...
double val = 1.23456; if (val > (1.0 - _Point)) val -= floor(val); // убираем целую часть, если число больше 0.99999 int mantiss = val*pow(10, _Digits); // здесь искомое = 23456.
кажется так будет проще?
А намудрили, то ...
кажется так будет проще?
спасибищщще ! рабит как надо
мне трудно понять что вы написали, и сам никгда бы не додумался, но работает ))
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
нюансы:
не округляя
не умножая на 10 кратные.
пример:
есть число 0,0007 - нужно что было 7
есть 0,77777 - нужно 77777
есть ли какая функция ?