java - 将实数存储为 int 的接收/接受方法是什么?

标签 java sqlite floating-point int type-conversion

因为在 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/

相关文章:

ruby-on-rails - XP 上的 Ruby on rails msvcrt-ruby191.dll 问题

C 将 float 转换为 int 数组

java - 使用 Java/Scala 创建文档的格式化 PNG 'pages'

java - 业务事件框架

python - 如何从 python 类创建 sqlite 表?

c# - SQLite 连接未出现在实体数据模型向导中

python - 从 float 中快速获取数字片段

java - Java中如何将十六进制字符串转换为浮点型?

java - 如何找到用graphics2d绘制的字符串的尺寸?

java - 我在模拟测试期间收到此错误 : Failed to load ApplicationContext