因为在 MS Access(是的:哎呀!)、Java 和 SQLite 之间的各种浮点风格之间进行转换非常令人沮丧,所以我想将实数存储为 SQLite 中的整数。是实现此目的的首选方法,如下所示(伪代码):
//real r = 36.57
string realAsStr = r.ToString();
// realAsStr is now "36.57"
// strip out the decimal point so that realAsStr becomes "3657"
int strAsInt = (integer)realAsStr; // strAsInt is 3657
...或者像这样:
int realAsInt = r * 100; // r * 100 is 3657.0[0]; realAsInt = 3657
...或者像其他的那样?
注意:这些在 MS Access 中存储为实际类型的值是货币值,存储为 double 。
最佳答案
只需将实际值乘以 10^x,其中 x 是逗号后的相关位数。
然后舍入或截断,并赋值给 int。
示例:
假设逗号后的 3 位数字与您的应用相关:
double doubleVal = 127.123;
int intVal = (int) doubleVal * 1E3; // 1E3 = 1* 10^3 = 1000.0;
// intVal now is 127123
回读时只需除以 10^x:
intVal = 127123; // from DB
double val = intVal / 1E3;
//现在的值是 127.123;
关于java - 将实数存储为 int 的接收/接受方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23064834/