这是由语言定义的吗?是否有定义的最大值?在不同的浏览器中是不同的?
我有跟返回对象的WCF服务操作long和List<string>属性.当我在WCF应用程序中测试操作时,一切正常,值正确.但是,我需要能够使用jQuery和JSON格式调用服务.long当我在OnSucceed函数中读回属性时,属性的值显然会发生变化.
经过搜索,我发现JSON.stringify变化很大.所以在这样的代码中:
alert(JSON.stringify(25001509088465005));
Run Code Online (Sandbox Code Playgroud)
......它会显示价值25001509088465004.
怎么了?
我正在构建一个Node后端,它从Vine API中提取数据,并将其返回到我的前端.员额和用户的ID是Number类型的,他们经常超过JavaScript可以支持的最大整数,根据这个问题.
API的示例ID是934416748524998656.当我JSON.parse在前端使用时,它用0替换最后2位数字,因为它无法读取高数字当我尝试使用特定ID与API通信时会导致问题,因为它现在无法识别ID .
有没有什么东西,没有用另一种语言创建新服务,我可以做些什么来处理这些ID?我尝试使用toString()将数字解释为字符串,但这只是创建了一个已经格式错误的字符串.
谢谢你的帮助
如果你在chrome或safari中键入78764357878563812,那么你就得到了
如果你这样做
for(var i = 0; i < 30; i++){console.log(i + " == " + 78764357878563800 + " ? ");console.log((78764357878563790+i) == 78764357878563800);}
Run Code Online (Sandbox Code Playgroud)
你开始比较从78764357878563790到78764357878563790 + 29的值,所以...就像你看到你运行它,你从i = 8到24得到真实.
所以我不知道我是不是得到它,但不应该存在maxint(我不知道)和maxint-1 ??? 然后最大不同于maxint-1?
我想这是精确的像浮动数字...但是,这不应该只是命中浮动数字,例如数字+ 1总是给成功者?(所以在上面的例子中,如果i = 78764357878563790并添加i ++,那么你进入一个无限循环.
我事先知道,对于浮点,数字之间存在这种类型的间距,但是从未遇到整数不能表示i + 1和i-1的情况(我总是认为无符号maxint + 1会携带并给出0).
任何建议:
我正在尝试使用java解析JSON字符串。我不知道该怎么做,我在互联网上搜索了很多东西,但有了一些主意。有了我,我有构建代码,但它不起作用。当尝试执行我的代码时,它将引发错误。我无法解决错误。
看到下面是我的代码:
import java.util.*;
import java.io.*;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;
public class JSOnNStringParsing {
public static void main(String[] args) {
try
{
BufferedReader read=new BufferedReader(new FileReader("D:\\Kavi works\\OutputFiles\\JSON_String.txt"));
String line=read.readLine();
while(line!=null)
{
System.out.println("Line = "+line);
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(line);
System.out.println("Read : "+jsonObject.get("read"));
JSONArray network = (JSONArray) jsonObject.get("network");
Iterator<String> iterator = network.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
catch(Exception e)
{
System.out.println("Error occured :"+e);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的JSON字符串在该文件中:
{"read":"2015-05-07T19:30:48.165009273+05:30","network":{"rx_bytes":11124,"rx_packets":116,"rx_errors":0,"rx_dropped":0,"tx_bytes":648,"tx_packets":8,"tx_errors":0,"tx_dropped":0},"cpu_stats":{"cpu_usage":{"total_usage":157158138204,"percpu_usage":[157158138204],"usage_in_kernelmode":49530000000,"usage_in_usermode":58420000000},"system_cpu_usage":258964110000000,"throttling_data":{"periods":0,"throttled_periods":0,"throttled_time":0}},"memory_stats":{"usage":73969664,"max_usage":74600448,"stats":{"active_anon":73928704,"active_file":4096,"cache":86016,"hierarchical_memory_limit":18446744073709551615,"inactive_anon":4096,"inactive_file":32768,"mapped_file":32768,"pgfault":62880,"pgmajfault":0,"pgpgin":34656,"pgpgout":34482,"rss":73883648,"rss_huge":67108864,"total_active_anon":73928704,"total_active_file":4096,"total_cache":86016,"total_inactive_anon":4096,"total_inactive_file":32768,"total_mapped_file":32768,"total_pgfault":62880,"total_pgmajfault":0,"total_pgpgin":34656,"total_pgpgout":34482,"total_rss":73883648,"total_rss_huge":67108864,"total_unevictable":0,"total_writeback":0,"unevictable":0,"writeback":0},"failcnt":0,"limit":2099310592},"blkio_stats":{"io_service_bytes_recursive":[],"io_serviced_recursive":[],"io_queue_recursive":[],"io_service_time_recursive":[],"io_wait_time_recursive":[],"io_merged_recursive":[],"io_time_recursive":[],"sectors_recursive":[]}}
Run Code Online (Sandbox Code Playgroud)
当我执行代码时,它会引发如下错误:
Line …Run Code Online (Sandbox Code Playgroud)