SQLite: Как сохранить результат запроса в виде файла CSV?

В сумме двух поплавков теряется ли какая-либо точность?

Если оба поплавка имеют различную величину, и оба используют полный диапазон точности (около 7 десятичных цифр) то да, вы увидите потерю в последних местах.

Почему?

Это связано с тем, что поплавки хранятся в форме (sign) ( мантисса) × 2 (показатель степени). Если два значения имеют разные показатели и вы их добавляете, то меньшее значение будет уменьшено до меньших цифр в мантиссе (потому что оно должно адаптироваться к более крупному экспоненту):

PS> [float]([float]0.0000001 + [float]1)
1

In сумма поплавка и целое число, есть ли какая-либо потеря точности?

Да, нормальное 32-битное целое число может точно представлять значения, которые точно не вписываются в float. Поплавок все еще может хранить приблизительно то же самое число, но уже не точно. Конечно, это относится только к достаточно большим числам, т.е. е. длиннее 24 бит.

Почему?

Так как float имеет 24 бита точности и (32-разрядные) целые числа, то 32. float все равно сможет для сохранения величины и большинства значимых цифр, но последние места могут, вероятно, отличаться:

PS> [float]2100000050 + [float]100
2100000100
141
задан RayLoveless 26 October 2017 в 14:45
поделиться