标签: data-conversion

将PHP false插入mysql

我的MySQL表包含一个tinyint(1)值,用于存储true或false值.

我有以下PHP变量:

$name = '';
$description = '';
$active = true;
Run Code Online (Sandbox Code Playgroud)

现在我的SQL查询如下:

$query = "INSERT into my_table (my_name, my_description, active) VALUES ('$name', '$description', $active) ";
Run Code Online (Sandbox Code Playgroud)

这只有在$ active的值为true时才有效.一旦活动变量为false,php将插入一个空字符串,而不是0,因此查询将失败.

在这样的查询中使用false的最佳方法是什么?

我应该手动将false转换为'0'字符串吗?是否更好地立即在PHP方面使用stings?换言之,声明:$ active ='1'; 或者我可以以某种方式让PHP总是将false转换为'0'字符串?

谢谢迈克尔

php mysql data-conversion

5
推荐指数
2
解决办法
6251
查看次数

输入一个整数,找到两个最接近的整数,当乘以时,等于输入

好吧,我的问题是数学性的.我有一个字节数组,其长度为X,我需要找到两个最接近的数字,它们相乘X.我需要这样做,因为我从一个字节数组建一个位图,我需要使位图看起来像一个正方形尽可能多.我在C#中对此进行编码,但不要担心语法,任何算法或伪代码都可以.在此先感谢您的帮助

arrays math matrix data-conversion

5
推荐指数
3
解决办法
4331
查看次数

为什么将空字符串转换为null传递给Grails 2.4.0中的域对象的构造函数?

我是Groovy和Grails的新手.由于空字符串被转换为null,因此要测试持久化的域对象的Spock测试失败.这是代码.域对象,

class Todo {

    String name
    Date createdDate
    String priority
    String status

    static constraints = {
        priority blank: true
    }

}
Run Code Online (Sandbox Code Playgroud)

Spock规范,

@TestFor(Todo)
class TodoSpec extends Specification {

    void "test persist"() {
        when:
        new Todo(name: 't1', createdDate: new Date(), priority: "1", status: 'ok').save()
        new Todo(name: 't2', createdDate: new Date(), priority: '', status: 'ok').save()

        then:
        Todo.list().size() == 2
    }

}
Run Code Online (Sandbox Code Playgroud)

结果grails test-app

Todo.list().size() == 2
     |      |      |
     |      1      false
     [collab.todo.Todo : 1]
        at collab.todo.TodoSpec.test persist(TodoSpec.groovy:18)
Run Code Online (Sandbox Code Playgroud)

我找到的空字符串'' …

grails groovy unit-testing data-conversion spock

5
推荐指数
1
解决办法
2220
查看次数

javax.validation.UnexpectedTypeException:HV000030:找不到以下类型的验证器:java.lang.Integer

我必须采取输入paper_namedate_of_birth作为intdate从一个数据类型的形式分别。

下面是代码:

<li> Number:<input type="text" name="paper_number" ></li>
< li>date of birth: <input type="text" name="date_of_birth"></ li>
Run Code Online (Sandbox Code Playgroud)

我在控制器中有paperNumberdateOfBirth变量分别为int和Date数据类型。

请帮助我将paper_number和date_of_birth的数据类型分别从字符串更改为int和date。

我在stackoverflow上看到了其他答案,他们也使用了jstl,但是我不知道如何在这里应用它。

控制器代码:

@RequestMapping(value = "/student" , params = "add", method = RequestMethod.POST )
       public String postAddStudent(
                   @RequestParam("date_of_birth" ) Date date,
                   @RequestParam("paper_number" ) int paperNumber)
Run Code Online (Sandbox Code Playgroud)

下面是EntityClass

public class EntityClass extends BaseEntity {

@Column(name = "DATE_OF_BIRTH", nullable = false)
    @NotBlank
    @DateTimeFormat(pattern = "dd-mm-yyyy")
    private Date dateOfBirth;//TODO

    @Column(name = "PAPER_NUMBER")
    private short paperNumber;
.. …
Run Code Online (Sandbox Code Playgroud)

spring spring-mvc data-conversion bean-validation

5
推荐指数
1
解决办法
1万
查看次数

如何将 csv 转换为该形式的 json 文件?

我有一个像这样的示例的 Csv 文件:

\n\n
0   -8,396  13,414  -35,891 39,22489124\n1   -8,789  12,768  -35,891 39,09516883\n2   -9,136  12,768  -35,891 39,17463722\n3   -9,614  12,768  -35,891 39,2888623\n4   -9,614  12,397  -36,282 39,52844709\n5   -9,614  12,397  -36,282 39,52844709\n
Run Code Online (Sandbox Code Playgroud)\n\n

我需要将其转换为该形式的 JSON 文件:

\n\n
{"0": [-12.770680147058824, 1.846047794117647, -54.265625, 55.77863587895704], \n"1": [-18.388229927007298, 6.5360401459854014, -52.65647810218978, 56.156491225545878], \n"2": [-20.042738970588236, 12.849264705882353, -46.678308823529413, 52.399231898471129], \n"3": [-38.242244525547449, 15.836222627737227, -40.48357664233577, 57.897972254845804], \n"4": [-33.016879562043798, 6.3001824817518246, -38.179288321167881, 50.867127813832226]}\n
Run Code Online (Sandbox Code Playgroud)\n\n

你有 id\xc3\xa9a 我该怎么做吗?

\n

csv json data-conversion

5
推荐指数
1
解决办法
4987
查看次数

十六进制 - >浮点转换不准确

我使用以下代码将十六进制转换String为浮点String:

private static String removeScientificNotation(float value)
{
    return new BigDecimal(Float.toString(value)).toPlainString();
}

/**
 * Converts a hexadecimal value to its single precision floating point representation
 *
 * @param hexadecimal The <code>hexadecimal</code> to convert
 * @return The converted value
 */
public static String hexadecimalToFloatingPoint(String hexadecimal)
{
    Long longBits = Long.parseLong(hexadecimal, 16);
    Float floatValue = Float.intBitsToFloat(longBits.intValue());

    return removeScientificNotation(floatValue);
}
Run Code Online (Sandbox Code Playgroud)

为了测试这个,我写了以下JUnit测试:

public class TestConversions
{
    @Test
    public void testConversions()
    {
        String floatValue = Conversions.hexadecimalToFloatingPoint("40000000");
        Assert.assertEquals(floatValue, "2.0");
        floatValue = …
Run Code Online (Sandbox Code Playgroud)

java string floating-point data-conversion bigdecimal

5
推荐指数
1
解决办法
96
查看次数

在C#中将ulong映射为long?

我试图将ulong映射到long(反之亦然),并将uint映射到int(反之亦然),如下所示 - 以便将值保存在带有签名类型的MS-SQL数据库中仅限整数和大整数.

我这样做是因为我必须检查(在数据库中)一个数字(uint,ulong)是否在一堆uint/ulong范围内的哪个范围内(IPs-v4&v6;实际上ulong实际上是由uint128组成的两个ulongs).

UlongToLong

UIntToInt

有没有更有效的方法来实现这一点,我有这里的代码:

public static ulong SignedLongToUnsignedLong(long signedLongValue)
{
    ulong backConverted = 0;

    // map ulong to long [ 9223372036854775808 = abs(long.MinValue) ]
    if (signedLongValue < 0)
    {
        // Cannot take abs from MinValue
        backConverted = (ulong)System.Math.Abs(signedLongValue - 1);
        backConverted = 9223372036854775808 - backConverted - 1;
    }
    else
    {
        backConverted = (ulong)signedLongValue;
        backConverted += 9223372036854775808;
    }

    return backConverted;
}


public static long UnsignedLongToSignedLong(ulong unsignedLongValue)
{
    // map ulong to long [ 9223372036854775808 = abs(long.MinValue) ]
    return (long) (unsignedLongValue …
Run Code Online (Sandbox Code Playgroud)

.net c# data-conversion ulong uint

5
推荐指数
1
解决办法
4199
查看次数

使用jq将所有json键转换为小写

我正在寻找一个带有数组的JSON文件到我的数据库中.带有数组项的json文件如下: -

   {
  "campaignId": "11067182",
  "campaignName": "11067182",
  "channelId": "%pxbid_universal_site_id=!;",
  "channelName": "%pxbid_universal_site_id=!;",
  "placementId": "%epid!",
  "placementName": "%epid!",
  "publisherId": "%esid!",
  "publisherName": "%esid!",
  "hitDate": "2017-03-23",
  "lowRiskImpressions": "61485",
  "lowRiskPct": "64.5295",
  "moderateRiskImpressions": "1887",
  "moderateRiskPct": "1.9804",
  "highRiskImpressions": "43",
  "highRiskPct": "0.0451",
  "veryHighRiskImpressions": "860",
  "veryHighRiskPct": "0.9026",
  "totalRated": "95274",
  "unrated": "8",
  "unratedPct": "0.0084",
  "visibleCount": "64283",
  "pctVisible": "67.4660",
  "invisibleCount": "30999",
  "totalImpressions": "95282"
}
{
  "campaignId": "11067182",
  "campaignName": "11067182",
  "channelId": "%pxbid_universal_site_id=!;",
  "channelName": "%pxbid_universal_site_id=!;",
  "placementId": "%epid!",
  "placementName": "%epid!",
  "publisherId": "%esid!",
  "publisherName": "%esid!",
  "hitDate": "2017-03-22",
  "lowRiskImpressions": "17929",
  "lowRiskPct": "52.9379",
  "moderateRiskImpressions": "1872",
  "moderateRiskPct": "5.5273",
  "highRiskImpressions": …
Run Code Online (Sandbox Code Playgroud)

json key lowercase data-conversion jq

5
推荐指数
1
解决办法
4014
查看次数

如何使用ruby将十六进制转换为uint8_t

我有一串

6e6de179a94a4b406efab31f29d216c0e2ff0000
Run Code Online (Sandbox Code Playgroud)

有人告诉我将其定义为uint8_t,并将其解压缩为纬度[8],经度[8]和高度[4]。

我认为此十六进制应解码为54.58335 -5.70542 -15

如何使用Ruby解码这样的字符串?

ruby hex decode decimal data-conversion

5
推荐指数
1
解决办法
142
查看次数

用于打印巨大(超过128位)二进制数的十进制值的算法?

TLDR,在底部:)

简介: 我正在创建一个用于处理大量数字的基本算术库(加法,减法...)。我面临的问题之一是将这些巨大的二进制数打印为十进制。

我在uint64_t数组中存储了巨大的二进制数。例如

uint64_t a[64] = {0};
Run Code Online (Sandbox Code Playgroud)

现在,目标是在控制台/文件中打印64 * 64位二进制数作为其十进制值。

初始工作: 为了阐述这个问题,我想描述如何打印十六进制值。

int i;
int s = 1;
a[1] = (uint64_t)0xFF;
for(i = s; i>= 0; i--)
{
    printf("0x%08llX, ", a[i]);
}
Run Code Online (Sandbox Code Playgroud)

输出:

0x000000FF, 0x00000000, 
Run Code Online (Sandbox Code Playgroud)

同样,对于打印OCT值,我只能从a [64]中取LSB 3位,打印与这些位等效的十进制数,向右移3位a [64]的所有位,并继续重复直到a [64]的所有值都已打印。(以反转顺序打印,以使第一个十进制数字保持在右侧)

我可以通过重复此单位算法来打印大小不受限制的二进制十六进制和十进制值,但是我找不到/开发一个十进制的值,可以重复一遍以打印a [64](或更大的值)。

我想到的是: 我最初的想法是继续减去

max_64 =(uint64)10000000000000000000; //(i.e.10^19)
Run Code Online (Sandbox Code Playgroud)

uint64_t内部最大的10的倍数,a直到内部的值a小于max_64(基本上等于rem_64 = a%max_64),然后使用以下命令打印rem_64值

printf("%019llu",rem_64);
Run Code Online (Sandbox Code Playgroud)

这是数字的第19个十进制数字a

然后执行类似于(不是代码)的算术运算:

a = a/max_64; /* Integer division(no fractional part) to remove right most 19 dec digits from 'a' */ …
Run Code Online (Sandbox Code Playgroud)

c algorithm data-conversion

5
推荐指数
1
解决办法
192
查看次数