- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
QJsonValue toDouble() 转换生成错误值导致数据丢失。
QJsonObject obj;
obj.insert("dbl",double(73183493944884961));
double d = obj.value("dbl").toDouble();
qulonglong ul = d;
qulonglong ul2 = 73183493944884961;
qDebug () << ul << ul2;
输出:
73183493944884960 73183493944884961
最佳答案
toDouble() 意味着它返回一个 double (然后你将其转换为 qulonglong),这本质上是一个精度损失。您可以通过打印出来轻松解决这个问题,而无需涉及 json:
#include <QDebug>
int main()
{
qulonglong ul2 = double(73183493944884961);
qDebug() << ul2;
return 0;
}
g++ -fPIC -I/usr/include/qt -I/usr/include/qt/QtCore -lQt5Core main.cpp && ./a.out
73183493944884960
关于c++ - 为什么qjsonvalue todouble转换会导致数据丢失?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19207264/
我正在尝试执行以下代码行,但它给我错误: var distanceTravelRight = 10.0; var tick = DateTime.Now.Ticks(); var velLeft =
Closed. This question needs debugging details 。它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 Stack Overflow 的 on-topi
当字符串将字符串值转换为 double 值时,我遇到了问题。例如: string val="2.0"; double dval=Convert.ToDouble(val); 在法语系统上执行此代码会引
我正在从内部数据库读取数据。该代码将从数据库中读取的值分配给 double。 if (Convert.ToDouble(PricefromString) == Price && PriceFound
我正在尝试将此字符串转换为 double Convert.ToDouble("1.12"); 这是输出 System.FormatException was unhandled. 我应该这样做吗?
这个问题在这里已经有了答案: Conversion of a decimal to double number in C# results in a difference (5 个答案) 关闭 6
我有一个包含“09338.712001”的 QString myNumber。当我这样做时: myNumber.toDouble();,它返回 9338.71,但我希望 double 为原始值,即 0
我正在尝试使用 QString::toDouble() 函数验证用户输入。 documentation说该函数应该像这样使用: double QString::toDouble ( bool * ok
为什么我的十进制字符串值没有转换?!当使用 java.lang.Double.parseDouble 时,给出 NumberFormatException 的值工作得很好,但不建议在 Kotlin 中
我正在使用 ASP.NET 和 VB.NET。 这是我的代码 Dim Total As Double Total = Convert.ToDouble(lblTotal.Text.Substring(
我在加倍转换时遇到问题。我正在将两个字符串转换为 double,一个转换得很好,另一个转换为 int,但这是相同的代码.. QTextStream lecture(&file); ligne = le
我想在 QJsonObject 中存储一个 double 值并稍后检索相同的值。但是,检索到的值精度较低。 这是一个例子: qDebug() << QJsonObject({{"number", 49
可能这是一个非常基本的问题,但我真的很想知道到底发生了什么。 例如,如果我们在 C# 中执行以下操作: object obj = "330.1500249000119"; var val = Conv
很奇怪,星期五我在公司的项目中工作,我发现了一些“坏”代码或奇怪的代码。我说,我不相信 Microsoft Framework 中的那个错误。 我发现: double? euros = null; d
是否有比Convert.ToDouble更快的方法将string转换为double? 我监控了 System.Convert.ToDouble(string) 调用及其降低我的应用程序性能的情况。 C
来自 msdn 页面: public static double ToDouble( char value ) Parameters value Type: System.Char The Unico
考虑: val foo: Int = 1 foo.toDouble() // ok val bar = 2.toUInt() bar.toDouble() // error! 这对我来说没有意义。为什
我遇到了一个非常奇怪的问题。我在立即窗口中运行此命令: ?(System.Convert.ToDouble(2458963.229671001113318401517D)) 2458963.22967
我有这个代码: static def parseString(String inputRow, Particle particle) { def map = inputRow.spli
我有这个代码: static def parseString(String inputRow, Particle particle) { def map = inputRow.spli
我是一名优秀的程序员,十分优秀!