GVKun编程网logo

需要将JSON中的整数解析为整数,而不是浮点数(需要将json中的整数解析为整数,而不是浮点数吗)

15

本文将分享需要将JSON中的整数解析为整数,而不是浮点数的详细内容,并且还将对需要将json中的整数解析为整数,而不是浮点数吗进行详尽解释,此外,我们还将为大家带来关于5、PHP-将浮点数转为整数ph

本文将分享需要将JSON中的整数解析为整数,而不是浮点数的详细内容,并且还将对需要将json中的整数解析为整数,而不是浮点数吗进行详尽解释,此外,我们还将为大家带来关于5、PHP-将浮点数转为整数 php 浮点数比较 php 浮点数精度 php 浮点数格式、asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数、Excel文件中的整数变成浮点数?、java – Gson.将整数反序列化为整数,而不是双精度的相关知识,希望对你有所帮助。

本文目录一览:

需要将JSON中的整数解析为整数,而不是浮点数(需要将json中的整数解析为整数,而不是浮点数吗)

需要将JSON中的整数解析为整数,而不是浮点数(需要将json中的整数解析为整数,而不是浮点数吗)

首先让我解释一下这个问题。

我的Golang应用程序中包含了JSON记录流。它基本上将这些转发到数据存储(InfluxDB)。JSON中有一些整数值,还有一些浮点值。必须将它们与原始数据类型一起转发到数据存储。否则,将发生类型冲突,并且写入操作将失败。

Ruby JSON解析器可以轻松做到这一点:

require ''json''obj = { "a" => 123, "b" => 12.3 }parsed = JSON.parse(obj.to_json)print parsed["a"].class # => Integerprint parsed["b"].class # => Float

encoding/jsonGolang中的软件包确实有一些麻烦(所有数字都解析为浮点数):

package mainimport "encoding/json"import "fmt"func main () {  str := "{\"a\":123,\"b\":12.3}"  var parsed map[string]interface{}  json.Unmarshal([]byte(str), &parsed)  for key, val := range parsed {    switch val.(type) {    case int:      fmt.Println("int type: ", key)    case float64:      fmt.Println("float type: ", key)    default:      fmt.Println("unknown type: ", key)    }  }}

哪些打印:

float type:  afloat type:  b

我需要一种以Ruby JSON解析器的方式将int解析为int并以float形式浮动的方法。

在这种情况下,将所有内容解析为字符串并检查是否存在小数是不可行的 。某些值以字符串形式出现,例如“ 123”,我需要将它们 作为string 推送。

我没有解析对象的结构,这也不是一个选择。golang应用程序实际上并不关心模式,而只是在接收到输入时转发该输入。


我尝试了这里概述的方法:验证int和float64的reflect.Type的其他方法(使用reflect),但是它不能准确地标识int:

t := reflect.TypeOf(parsed["a"])k := t.Kind()k == reflect.Int // falsek == reflect.Float64 // true

答案1

小编典典

例如,使用通用Go机制获取自定义JSON值的Ruby JSON数字类型,

package mainimport (    "encoding/json"    "fmt"    "strconv")func main() {    str := `{"a":123,"b":12.3,"c":"123","d":"12.3","e":true}`    var raw map[string]json.RawMessage    err := json.Unmarshal([]byte(str), &raw)    if err != nil {        panic(err)    }    parsed := make(map[string]interface{}, len(raw))    for key, val := range raw {        s := string(val)        i, err := strconv.ParseInt(s, 10, 64)        if err == nil {            parsed[key] = i            continue        }        f, err := strconv.ParseFloat(s, 64)        if err == nil {            parsed[key] = f            continue        }        var v interface{}        err = json.Unmarshal(val, &v)        if err == nil {            parsed[key] = v            continue        }        parsed[key] = val    }    for key, val := range parsed {        fmt.Printf("%T: %v %v\n", val, key, val)    }}

游乐场:https :
//play.golang.org/p/VmG8IZV4CG_Y

输出:

int64: a 123 float64: b 12.3 string: c 123 string: d 12.3 bool: e true

另一个示例,使用Go json.Number类型的Ruby JSON数字类型,

package mainimport (    "encoding/json"    "fmt"    "strings")func main() {    str := `{"a":123,"b":12.3,"c":"123","d":"12.3","e":true}`    var parsed map[string]interface{}    d := json.NewDecoder(strings.NewReader(str))    d.UseNumber()    err := d.Decode(&parsed)    if err != nil {        panic(err)    }    for key, val := range parsed {        n, ok := val.(json.Number)        if !ok {            continue        }        if i, err := n.Int64(); err == nil {            parsed[key] = i            continue        }        if f, err := n.Float64(); err == nil {            parsed[key] = f            continue        }    }    for key, val := range parsed {        fmt.Printf("%T: %v %v\n", val, key, val)    }}

游乐场:https :
//play.golang.org/p/Hk_Wb0EM-aY

输出:

int64: a 123float64: b 12.3string: c 123string: d 12.3bool: e true

@ShudiptaSharma建议的工作版本。

5、PHP-将浮点数转为整数 php 浮点数比较 php 浮点数精度 php 浮点数格式

5、PHP-将浮点数转为整数 php 浮点数比较 php 浮点数精度 php 浮点数格式

1、使用强制类型转换

首先PHP支持如下所示的数据类型:

<span>1. </span>Integer    (整数)
<span>2. </span>Float      (浮点数)
<span>3. </span>String     (字符串)
<span>4. </span>Boolean    (布尔值)
<span>5. </span>Array      (数组)
<span>6. </span>Object     (对象)
登录后复制

此外还有两个特殊的类型:NULL(空)、resource(资源)。

注:
1. 没有被赋值、已经被重置或者被赋值为特殊值NULL的变量就是NULL类型的变量。
2. 特定的内置函数(例如数据库函数)将返回resource类型的变量。

接着可以使用类似C语言的强制类型转换,例如

<span><?php </span><span>$a</span>=<span>6.66666</span>;
<span>$b</span>=(integer)<span>$a</span>;
<span>echo</span><span>$b</span>;</span>
登录后复制

将输出一个6,直接舍去了小数部分

立即学习“PHP免费学习笔记(深入)”;

2、使用float floor ( float value) 函数

舍去法取整,返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为float 值的范围通常比 integer 要大。

echo <span>floor</span>(<span>4.3</span>);   <span>// 输出4 </span>
echo <span>floor</span>(<span>9.999</span>); <span>// 输出9</span>
登录后复制

3、使用float ceil ( float value) 函数

进一法取整,返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为float 值的范围通常比 integer 要大。

echo <span>ceil</span>(<span>4.3</span>);    <span>// 输出5 </span>
echo <span>ceil</span>(<span>9.999</span>);  <span>// 输出10</span>
登录后复制

4、使用float round ( float val [, int precision])函数

对浮点数进行四舍五入,返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。

echo <span>round</span>(<span>3.4</span>);         <span>// 输出3 </span>
echo <span>round</span>(<span>3.5</span>);         <span>// 输出4 </span>
echo <span>round</span>(<span>3.6</span>);         <span>// 输出4 </span>
echo <span>round</span>(<span>3.6</span>, <span>0</span>);      <span>// 输出4 </span>
echo <span>round</span>(<span>1.95583</span>, <span>2</span>);  <span>// 输出1.96 </span>
echo <span>round</span>(<span>1241757</span>, -<span>3</span>); <span>// 输出1242000 </span>
echo <span>round</span>(<span>5.045</span>, <span>2</span>);    <span>// 输出5.04 </span>
echo <span>round</span>(<span>5.055</span>, <span>2</span>);    <span>// 输出5.06</span>
登录后复制
'').addClass(''pre-numbering'').hide(); $(this).addClass(''has-numbering'').parent().append($numbering); for (i = 1; i '').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介绍了5、PHP-将浮点数转为整数,包括了php,浮点数方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数

asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数

如:
0.625 取 1
2.1  取 3
3.6  取 4
<%
if fix(a)>a then
b=fix(a)
else
b=fix(a)+1
response.write b
end if
%>
或者:
<%
a=0.625
if a<>fix(a) then
a=fix(a)+1
else
a=fix(a)
end if
response.write a
%>
(注:这个测试成功!)
-------------
如果用:
<%
a=0.625
if a<>cint(a) then
a=cint(a)+1
response.write a
end if
%>
(注:这个如果a=0.625,返回的就变成2,而不是变成1.)
您可能感兴趣的文章:
  • JS保留小数点(四舍五入、四舍六入)实现思路及实例
  • javascript小数四舍五入多种方法实现
  • js数字输入框(包括最大值最小值限制和四舍五入)
  • 特殊数据的js四舍五入问题
  • PHP保留两位小数并且四舍五入及不四舍五入的方法
  • c#中的浮点型转整形的舍取 四舍五入和银行家舍入实现代码

Excel文件中的整数变成浮点数?

Excel文件中的整数变成浮点数?

我用来xlrd从Excel文件中读取数据。

假设对于存储在文件中的整数63xlrd解释将其解释为63.0type number

为什么不能xlrd识别63为整数?

假设sheet.row(1)[0].value给了我们63.0。如何将其转换回63

java – Gson.将整数反序列化为整数,而不是双精度

java – Gson.将整数反序列化为整数,而不是双精度

我有json对象里面有任意值.我想在地图中反序列化它.一切都好,除了将整数转换为双打.参见示例:
{"id":1,"inner_obj":{"key":"value","num":666,"map":{"key":"value"}}}

反序列化(map.toString()):

{id=1.0,inner_obj={key=value,num=666.0,map={key=value}}}

有没有一些简单的方法来反序列化“id”和“num”作为整数,而不是双打?

解决方法

杰克逊在检测地图类型方面做得更好,配置比GSON: https://github.com/FasterXML/jackson-databind要容易得多

关于需要将JSON中的整数解析为整数,而不是浮点数需要将json中的整数解析为整数,而不是浮点数吗的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于5、PHP-将浮点数转为整数 php 浮点数比较 php 浮点数精度 php 浮点数格式、asp 取一个数的整数 但不是四舍五入,只要有小数,就取大于这个数的整数、Excel文件中的整数变成浮点数?、java – Gson.将整数反序列化为整数,而不是双精度等相关内容,可以在本站寻找。

本文标签: