社区首页 >问答首页 >不能直接转换成十进制值?

不能直接转换成十进制值?
EN

Stack Overflow用户
提问于 2019-04-01 06:24:47
回答 2查看 476关注 0票数 9

我有以下字符串,并希望将其转换为DECIMAL(38,0)

代码语言:javascript
代码运行次数:0
复制
a321

以下代码是可以的:

代码语言:javascript
代码运行次数:0
复制
SELECT CAST(CONVERT(binary(2), 'a321', 2) AS BIGINT);  -- 41761

但这次失败了:

代码语言:javascript
代码运行次数:0
复制
SELECT CAST(CONVERT(binary(2), 'a321', 2) AS DECIMAL(38,0));

Msg 8114,级别16,状态5,第7行将数据类型var二进制转换为数字错误。

做两个这样的角色没什么大不了的:

代码语言:javascript
代码运行次数:0
复制
SELECT CAST(CAST(CONVERT(binary(2), 'a321', 2) AS BIGINT) AS DECIMAL(38,0));

但我想知道为什么不行。有人能解释吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-02 02:26:31

这可能是因为您要转换的数字是整数,而不是十进制。

代码语言:javascript
代码运行次数:0
复制
SELECT CAST(41761 AS VARBINARY), CAST(41761.0 as VARBINARY)

上面的结果给出了不同的结果,因为我怀疑后者携带了关于十进制组件的信息。同样,当将十进制值转换为二进制时,它的工作原理是预期的。

代码语言:javascript
代码运行次数:0
复制
SELECT CAST(41761.0 as VARBINARY) -- gives 0x060100014A5F0600 on Azure SQL
SELECT CAST(0x060100014A5F0600 as DECIMAL) -- gives 41761 on Azure SQL

我已经标记了服务器,因为MSDN声明,结果可能非常不同版本之间。

不要构造二进制值,然后将它们转换为数值数据类型类别的数据类型。Server并不保证将十进制或数字数据类型转换为二进制数据类型的结果在Server版本之间是相同的。

票数 1
EN

Stack Overflow用户

发布于 2019-04-01 06:27:48

先转换为bigint,然后转换为十进制:

代码语言:javascript
代码运行次数:0
复制
SELECT CONVERT(DECIMAL(38, 0), CONVERT(BIGINT, CONVERT(binary(2), 'a321', 2)))

小数的二进制表示与整数有很大的不同,并不是所有的二进制表示都可以转换为十进制。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55457450

复制
相关文章
Spring不能将包含key值为null的map集合转换成JSON
# Spring不能将包含key值为null的map集合转换成JSON Null key for a Map not allowed in JSON Spring不能将包含key值为null 的 map集合转换成 JSON # 1. 问题描述 编写代码进行测试的时候,控制台报出如下错误 org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Null key for a Map not
taixingyiji
2022/07/25
2.6K0
十进制转换成任意进制(栈的应用)
#include <iostream> #include <stack> using namespace std; int main() { stack<char> s; char a[37]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int x, n; scanf("%d%d", &x, &n); if (!x) printf("0"); else { while (x) { int ans = x % n; s.push(a
砖业洋__
2023/05/06
1900
十进制转换成任意进制(栈的应用)
JavaScript实现十进制转换成二进制
HTML5学堂:平时大家在写JavaScript效果的时候,可能会比较少接触二进制、八进制,经常使用的是十进制。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。本文给大家介绍二进制和十进制的转换。 什么是二进制 二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二
HTML5学堂
2018/03/12
1.2K0
JavaScript实现十进制转换成二进制
大数的十进制转换成二进制
要求输出最多有30位的十进制数的二进制表示。 10的30次方大概是2的100次方,最大的long long int最多也只能表示到2的64次方,所以用字符串来存这个数,然后通过遍历字符串的方式来模仿整数除法。 #include <cstdio> #include <iostream> #include <string.h> using namespace std; char sp[100]; int res[100]; int n,length; bool isAllZero(char* str)
kalifa_lau
2018/04/28
1.5K0
【R语言】P值转换成***
我们在做一些统计学分析的时候,总是能得到一个p值。但是在画图的时候,一般会把p值转换成星号(*),显示在图上。那么今天小编就来跟大家聊一聊,怎么用R语言,将P值转换成对应的*。
生信交流平台
2022/09/21
6060
【R语言】P值转换成***
java中带符号十六进制转换成十进制详解
java中带符号十六进制转换成十进制详解 代码如下 必须拿ffff进行测试,否则测不出异同 public void test1(){ String strHex="ffff"; int ia = Integer.parseInt(strHex,16); //不带符号十六进制转换十进制 System.out.println("ia: "+ia); //带符号十六进制转换十进制 Stri
胖虎哥
2023/05/10
4910
神“乐”马良:AI直接将音频转换成动画
【新智元导读】根据音乐信号预测身体的运动是一个极具挑战性的计算问题。来自Facebook、斯坦福大学和华盛顿大学的研究人员开发了一种基于深度学习的方法,该方法可以将乐器的声音转换成对骨骼关键点的预测,并可以用于制作动画角色。
新智元
2018/07/31
1.3K0
神“乐”马良:AI直接将音频转换成动画
python进制转换代码_python十六进制转换成十进制
本文实例讲述了Python实现的十进制小数与二进制小数相互转换功能。分享给大家供大家参考,具体如下:
全栈程序员站长
2022/09/27
6260
c语言十进制小数转二进制代码_c语言十进制转换成二进制
十进制转二进制,整数部分采用除以二取余,小数部分采用乘以二取整。网上大多数转换都是针对整数的,这里写一个小数的做个纪念
全栈程序员站长
2022/11/09
1.7K0
Excel公式技巧09: 将十进制数转换成指定进制的数
使用公式来解决问题:给定一个十进制的正整数,将其转换成指定进制的数。如下图1所示,在单元格A2中是给定的十进制正整数值,单元格B2中是指定的进制,示例中是4进制,单元格C2中是转换后的结果,单元格D2中使用公式检验结果是否正确。
fanjy
2020/02/26
1.9K0
为什么不能直接在 useEffect 中使用 async
在代码中,我们会使用 async/await 从第三方 API 获取数据。如果你对 async/await 熟悉的话,你会知道,每个 async 函数都会默认返回一个隐式的 promise。但是,useEffect 不应该返回任何内容。所以你会在控制台日志中看到以下警告:
小鑫
2022/04/22
2.6K0
前端传值不能带中括号???
将前端传值通过enencodeURI()进行转义,后台部分需要通过 URLDecoder.decode()进行解析
taixingyiji
2022/07/25
9900
前端传值不能带中括号???
Spring通过URL传值不能携带"."???
原来,SpringMvc在解析URL的时候,会把最后一个"."和后面的内容解析为后缀,然后进行内容匹配
taixingyiji
2022/07/25
5900
Spring通过URL传值不能携带"."???
Gson将map转换成JsonObject出现null值
Exception in thread “main” java.lang.IllegalStateException: Not a JSON Object: null at com.google.gson.JsonElement.getAsJsonObject(JsonElement.java:84)
全栈程序员站长
2022/11/09
9470
order by居然不能直接在union子句中使用
今天一个群中的兄弟问一个问题,说有一个表,表中有很多数据,其中有个字段type,希望从表中随机取出10条记录,其中有5条type=1另外5条type=0,比如下图这样:
深蓝studyzy
2022/06/16
8550
order by居然不能直接在union子句中使用
到底能不能越过C直接学C++?
其实这个问题不难,就是直接了解两者的联系和区别就可以给出答案。下面我们来看看他俩到底有什么关系。 1、从名字上看,两者似乎有很大关系 C++,这个词在中国的程序员圈子中通常被读做“C加加”,而西方的程
程序员互动联盟
2018/03/14
1.1K0
到底能不能越过C直接学C++?
React篇(025)-我们为什么不能直接更新状态?
正确方法应该是使用 setState( ) 方法。它调度组件状态对象的更新。当状态更改时,组件将会重新渲染。
齐丶先丶森
2022/05/12
1.6K0
Nature: P值到底能不能用?
这篇文章的稿子在我桌面上已经躺了两年,现在也不想继续整了。就把之前弄好的发出来吧。
Listenlii-生物信息知识分享
2021/07/30
7890
点击加载更多

相似问题

为什么我的十进制值不能转换成6,4?

45

我不能把二进制转换成十进制,把十进制转换成二进制

17

不能选择十进制值

13

二进制串转换成十进制值,公式?

21

如何将十进制值转换成分数值?

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档